import sys

from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QToolTip, QMessageBox

'''
窗体事件重写（closeEvent),QMessageBox消息框的使用
pyqt5类封装，setGeometry() 鼠标悬停提示 对话消息盒子关闭窗口按钮

msgbox = QMessageBox(QMessageBox.Information, '帮助', '欢迎使用本系统', QMessageBox.Ok, self)
msgbox.show()
'''


class MyClass(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('刘金玉编程')
        self.setGeometry(500, 300, 300, 150)  # x,y ,w,h ,标题 有30px  y-30
        # 鼠标悬停提示信息
        self.setWindowIcon(QIcon('./img/msn.ico'))
        QToolTip.setFont(QFont("隶书", 20))
        self.setToolTip('编程创造城市http://bcczcs.com')
        # 按钮
        btn = QPushButton('关闭', self)
        btn.setToolTip('关闭窗口')
        btn.move(160, 80)
        btn.clicked.connect(self.close)  # 对象btn.信号clicked.槽connect(关闭事件self.close), 槽中函数close没有括号

        self.show()

    def closeEvent(self, event):
        '''重写close默认关闭的方法'''
        result = QMessageBox.question(self, '提示信息', '你确定关闭窗体吗？', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        if result == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
            QMessageBox.information(self, '消息', '你还是留恋！')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    mc = MyClass()
    app.exec_()  # 监听app所有信号
